home *** CD-ROM | disk | FTP | other *** search
/ Softdisk G-S 93 / SGDS 93.2mg / SDGS.93 / SDB93 / B / DIVISION.DRILLS (.txt) < prev    next >
Encoding:
Applesoft BASIC Source Code  |  1989-05-22  |  11.5 KB  |  248 lines  |  [FC] Applesoft BASIC Program (0x6001)

  1. 1  PRINT  CHR$(21): INVERSE : SPEED= 255: PRINT  CHR$(4)"-windowbox.ml": POKE 48688, PEEK(0): POKE 48689, PEEK(1):BOX = 2051:OBOX = 2054:CBOX = 2057: PRINT  CHR$(4)"BLOADSHADOW.IMAGE,A$C6C"
  2. 2  SPEED= 255: CALL BOX,1,1,40,24: INVERSE : ONERR  GOTO 4140
  3. 5  PRINT  CHR$(4)"BLOAD FNT.FONT,A$0E00"
  4. 6 Q8 =  PEEK(184):Q9 =  PEEK(185): CALL Q8 +(Q9 -(Q8 >244)) *256 +39: REM ::8 <CTRL-0x1f><UNKNOWN TOKEN> GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF ^ TAB(  IF ) TAB( <CTRL-0x09>  PLOT ) TAB( `:
  5. 110 S0 = 3:N0 = 2:R9 = 2:M9 = 5:S$ = "Y": SPEED= 255: DIM A(19),P(50),B(19): GOSUB 2410: GOTO 3460
  6. 150  PRINT  CHR$(20) CHR$(12): POKE 512,S0: POKE 513,N0: POKE 514,R9: POKE 515,M9: POKE 516, ASC(S$): CALL 54915: CLEAR : DIM A(19),P(50),B(19): GOSUB 151: GOTO 3460
  7. 151 S0 =  PEEK(512):N0 =  PEEK(513):R9 =  PEEK(514):M9 =  PEEK(515):S$ =  CHR$( PEEK(516)):BOX = 2051:OBOX = 2054:CBOX = 2057: RETURN 
  8. 160  GOSUB 2490: IF R0 = 0  THEN E(0) = E(0) +1
  9. 190  IF R0 < >0  THEN E(2) = E(2) +1
  10. 210  GOSUB 3310: IF X0 = 0  THEN X0 = 1
  11. 250  IF EL <5  AND HJ = 1  THEN  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(A *2)
  12. 260  IF HJ = 0  AND EL = 1  THEN  VTAB 8: HTAB 38 -A
  13. 270  IF HJ = 0  AND EL = 2  THEN  VTAB 7: HTAB 37 -A: NORMAL 
  14. 280  IF EL = 3  AND HJ = 0  THEN  VTAB 10: HTAB 38 -A
  15. 290  IF HJ = 0  AND EL = 4  THEN  VTAB 5: HTAB 37 -A
  16. 300  IF EL = 5  AND HJ = 0  THEN  VTAB 8: HTAB 37 -(2 *B)
  17. 310  IF EL >0  AND EL <5  AND HJ = 1  THEN  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(A *2)
  18. 320  IF EL = 5  AND HJ = 1  THEN  VTAB 5 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(B *2)
  19. 330  IF R0 = R9  THEN A9 = B(I): GOTO 830
  20. 340  IF EL <5  AND HJ = 1  THEN  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(A *2)
  21. 380  IF HJ = 0  AND EL = 1  THEN  VTAB 8: HTAB 38 -A
  22. 390  IF HJ = 0  AND EL = 2  THEN  VTAB 7: HTAB 37 -A
  23. 400  IF EL = 3  AND HJ = 0  THEN  VTAB 10: HTAB 38 -A
  24. 410  IF HJ = 0  AND EL = 4  THEN  VTAB 5: HTAB 37 -A
  25. 420  IF EL = 5  AND HJ = 0  THEN  VTAB 8: HTAB 37 -(2 *B)
  26. 430  IF EL >0  AND EL <5  AND HJ = 1  THEN  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(A *2)
  27. 440  IF EL = 5  AND HJ = 1  THEN  VTAB 5 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(B *2)
  28. 450 R0 = R0 +1: GOTO 770
  29. 470  GOSUB 2490: IF R0 = 0  THEN E(1) = E(1) +1
  30. 500  IF R0 < >0  THEN E(3) = E(3) +1
  31. 510  GOSUB 3310: IF X0 = 0  THEN X0 = 1
  32. 540  IF EL = 7  THEN  GOSUB 2100: GOTO 570
  33. 560  VTAB 2: HTAB 4 +(2 *N0) +(2 *I)
  34. 570  IF R0 = R9  THEN A9 = A(7 -I): GOTO 730
  35. 580 X = 1:R0 = R0 +1: GOTO 650
  36. 630 OO = 0: FOR I = 0 TO 7:EL = 0: IF LV = 4  THEN  GOSUB 6570
  37. 635  IF LV = 3  AND  LEN( STR$(N0)) = 1  THEN H1$ = "on ": GOSUB 2090: IF HJ = 1  THEN H1$ = "off": GOSUB 2090
  38. 646  GOSUB 6470: PRINT  CHR$(20);
  39. 650  VTAB 2: HTAB 4 +(2 *N0) +(2 *I)
  40. 660  GOSUB 3370: GET A$: IF (A$ = "H"  OR A$ = "h")  AND HJ = 1  THEN HJ = 0:H1$ = "on ": GOSUB 2090: GOTO 650
  41. 665  IF A$ =  CHR$(27)  THEN  GOSUB 3760: GOTO 660
  42. 670  IF (A$ = "H"  OR A$ = "h")  AND HJ = 0  THEN HJ = 1:H1$ = "off": GOSUB 2090
  43. 680  IF A$ = "T"  OR A$ = "t"  THEN  GOTO 6510
  44. 685  PRINT  CHR$(20);: VTAB 2: HTAB 4 +(2 *N0) +(2 *I): IF (A$ <"0")  OR (A$ >"9")  THEN 660
  45. 700 A9 =  ASC(A$) - ASC("0"): IF A9 < >A(7 -I)  THEN 470
  46. 720  GOSUB 2460
  47. 730 R0 = 0: PRINT A9: IF I = S0  THEN  VTAB 2: HTAB 3 +(2 *N0) +(2 *I): PRINT "."
  48. 750  GOSUB 6570: IF A(7 -I) = 0  THEN A9 = 0: GOTO 860
  49. 760  GOSUB 6000: IF EL >0  THEN 860
  50. 770  GOSUB 3370: GET A$: IF (A$ = "H"  OR A$ = "h")  AND HJ = 1  THEN HJ = 0: GOSUB 8500:H1$ = "on ": GOSUB 2090: GOSUB 3830: GOTO 2160
  51. 775  IF A$ =  CHR$(27)  THEN  GOSUB 3760: GOTO 770
  52. 780  IF (A$ = "H"  OR A$ = "h")  AND HJ = 0  THEN HJ = 1: INVERSE : GOSUB 6570:H1$ = "off": GOSUB 2090: GOTO 2160
  53. 790  IF (A$ <"0")  OR (A$ >"9")  THEN 770
  54. 800 A9 =  ASC(A$) - ASC("0"): IF A9 < >B(I)  THEN 160
  55. 820  GOSUB 2460
  56. 830  PRINT A9: INVERSE : IF EL = 3  AND HJ = 0  THEN  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(A *2): PRINT A9
  57. 850  IF EL >0  THEN  RETURN 
  58. 860  IF A(7 -I) = 0  AND LV >0  AND I = 7  AND EP = 0  THEN 910
  59. 870  IF A(7 -I) = 0  AND LV >0  AND I < >7  AND A(8 -I) < >0  THEN LK = 1
  60. 880  IF A(7 -I) = 0  AND LV >0  AND I < >7  THEN R = R -1:P(R) = HI(8 -I):ZC = HI(6 -I):UU = 1: GOSUB 6430:J4 = J4 +1:J7 = J7 +1:EC$ = EC$ +" ": IF EP = 0  AND QJ >0  THEN EC$ = ""
  61. 890  IF A(7 -I) = 0  AND LV >0  AND I = 7  THEN P(R) = HI(0):ZC = P(R):UU = 1: GOSUB 6430:J9 = J9 +1:J4 = J4 +1:J7 = J7 +1:EC$ = EC$ +" ": IF EP = 0  THEN R = 7:P(R) = HI(7 -I): IF P(R) < >0  THEN EP = 1
  62. 900  IF A(7 -I) = 0  AND LV >0  AND I < >7  AND EP = 0  THEN R = 7 -QJ:P(R) = HI(7 -QJ -I):J4 = QJ: FOR T = 1 TO QJ:EC$ = EC$ +" ": NEXT :J7 = QJ +1:QJ = QJ +1
  63. 910  NEXT I: GOTO 1340
  64. 940  FOR I = 0 TO 4:E(I) = 0: NEXT I: RETURN 
  65. 990  VTAB 4: FOR T = 0 TO N0 -1: HTAB 2 +(2 *T): PRINT HE(N0 -1 -T);: NEXT : PRINT "   ";: FOR T = 7 TO 0  STEP  -1: HTAB 4 +(2 *N0) +(2 *T): PRINT HI(7 -T);: IF T = S0 -1  THEN  PRINT ".";
  66. 992  HCOLOR= 0:Y = 14 *N0: HPLOT (9 +Y),19 TO (130 +Y),19 TO (130 +Y),20 TO (10 +Y),20 TO (10 +Y),30 TO (9 +Y),30 TO (9 +Y),19
  67. 1100  NEXT : PRINT : VTAB 2: HTAB 2: PRINT "ANS.": RETURN 
  68. 1230  GOSUB 940: FOR P = 1 TO M9:T =  FRE(0): FOR Q8 = 1 TO 8: CALL CBOX: NEXT : GOSUB 1860: IF X = 1  THEN V = V +1:X = 0
  69. 1240  FOR Q8 = 0 TO 9:K(Q8) = 0:N(Q8) = 0:RE(Q8) = 0: NEXT :C = 0
  70. 1290  GOSUB 3840: NEXT P: RETURN 
  71. 1340  CALL BOX,21,6,19,7: PRINT "Congratulations!": PRINT "    You have": PRINT "   solved it.": PRINT "  press a key": PRINT "  to go on.": POKE 49168,0: GET K$: POKE 49168,0:LV = 0: RETURN 
  72. 1390  GOSUB 1440: GOSUB 1230: GOSUB 1650: RETURN 
  73. 1440  CALL BOX,8,2,26,3: INVERSE : PRINT  CHR$(20);:A$ = "Division Drill": VTAB 3: GOSUB 3730: VTAB 23:A$ = "Copyright (c) 1988 by Softdisk, Inc.": GOSUB 3730: CALL BOX,7,7,28,3: PRINT  CHR$(20);: VTAB 8:A$ = "Student Information": GOSUB 3730: POKE 32,1: POKE 33,38: CALL BOX,4,11,34,4: PRINT "Please enter your first name:"
  74. 1540 N$ = ""
  75. 1550  VTAB 13: HTAB 1: PRINT ">"N$;: GOSUB 3410: PRINT "  " CHR$(8) CHR$(8);: GET N2$: IF (N2$ =  CHR$(8)  OR N2$ = "")  AND  LEN(N$) <2  THEN 1540
  76. 1565  IF N2$ =  CHR$(27)  THEN 3460
  77. 1570  IF N2$ =  CHR$(8)  OR N2$ = ""  THEN N$ =  LEFT$(N$, LEN(N$) -1): GOTO 1550
  78. 1580  IF N2$ =  CHR$(13)  AND N$ < >""  THEN 1630
  79. 1590  IF N2$ <"A"  THEN  GOSUB 3310: GOTO 1550
  80. 1600  IF  LEN(N$) >15  THEN  GOSUB 3310: GOTO 1550
  81. 1610 N$ = N$ +N2$: GOTO 1550
  82. 1630  CALL BOX,4,11,34,4: PRINT "Do you want help when you": PRINT "divide (y/n)? ";
  83. 1631  GOSUB 3410: GET HH$: IF HH$ > = "a"  THEN  IF HH$ < = "z"  THEN HH$ =  CHR$( ASC(HH$) -32)
  84. 1632  IF HH$ < >"Y"  AND HH$ < >"N"  THEN 1631
  85. 1633 HJ = 1: IF HH$ = "Y"  THEN HJ = 0
  86. 1639  GOSUB 3840: RETURN 
  87. 1650  GOSUB 4430:A$ = "Drill results for " +N$: GOSUB 3730:A$ = "------------------": FOR I = 1 TO  LEN(N$):A$ = A$ +"-": NEXT : GOSUB 3730: PRINT : PRINT :A$ =  STR$(M9 -V) +" Problems correct out of " + STR$(M9) +".": GOSUB 3730: PRINT 
  88. 1655 A$ = "That is " + STR$( INT(100 *(M9 -V)/M9)) +"% Correct.": GOSUB 3730: PRINT : PRINT : PRINT : NORMAL :A$ = " First time Errors": GOSUB 3730: INVERSE : PRINT 
  89. 1660 A$ = "Answer        Math": GOSUB 3730:A$ = "-----         -----": GOSUB 3730:A$ =  STR$(E(1)) +"             " + STR$(E(0)): GOSUB 3730: PRINT : NORMAL :A$ = " Retry Errors ": GOSUB 3730: INVERSE : PRINT :A$ = "Answer        Math": GOSUB 3730
  90. 1670 A$ = "-----         -----": GOSUB 3730:A$ =  STR$(E(3)) +"              " + STR$(E(2)): GOSUB 3730: PRINT : PRINT : PRINT 
  91. 1680  POKE 49168,0:A$ = "Press any key to continue.": GOSUB 3730: GOSUB 3410: GET A$: GOTO 150
  92. 1860  GOSUB 4430:H1$ = " on": GOSUB 2090: IF HJ = 1  THEN H1$ = "off": GOSUB 2090
  93. 1870  GOSUB 2090
  94. 1875 HE$ = "":LE = 0:X0 = 0
  95. 1910  IF N0 = 1  THEN T = 0:HE(T) =  INT(10 * RND(1)): IF HE(T) = 0  THEN 1910
  96. 1920  IF N0 < >1  THEN  FOR T = 0 TO N0 -1:HE(T) =  INT(10 * RND(1)): IF HE(T) = 0  AND T = N0 -1  THEN T = T -1: NEXT 
  97. 1930 HE$ =  STR$(HE(T)) +HE$: IF N0 = 1  THEN HE =  VAL(HE$): GOTO 1950
  98. 1940  NEXT T:HE =  VAL(HE$)
  99. 1950  FOR I = 7 TO 0  STEP  -1: IF I <8 -S0  THEN HI(I) = 0: GOTO 1970
  100. 1960 HI(I) =  INT(10 * RND(1)): IF HI(I) = 0  AND I = 7  THEN 1960
  101. 1970  NEXT I:H$ = "": FOR I = 7 TO 0  STEP  -1:H$ = H$ + STR$(HI(I)):HI =  VAL(H$): IF LE = 0  THEN P(I) = HI(I):J7 =  LEN(H$)
  102. 2010  IF HI/HE <1  THEN A(I) = 0: GOTO 2060
  103. 2020 A(I) =  INT(HI/HE):LE = LE +1:RE(LE) = HI -(A(I) *HE):H$ =  STR$(RE(LE))
  104. 2060  NEXT I: IF RE(LE) = 0  THEN I = 8
  105. 2080  GOSUB 990:EL = 1: GOSUB 630: RETURN 
  106. 2090  PRINT  CHR$(20);:A$ = "Enter digit. (ESC=exit, [H]elp=" +H1$ +")": VTAB 23: GOSUB 3730: RETURN 
  107. 2100  IF HJ = 0  THEN  VTAB 15 +N0: HTAB 20 +S0 -2 *I: INVERSE : PRINT "^": NORMAL 
  108. 2110  VTAB 16 +N0: HTAB 20 +S0 -2 *I: RETURN 
  109. 2160  IF EL <3  THEN LP = LV -1
  110. 2170  IF EL >0  AND EL <5  THEN  VTAB 3 +(2 *LV) +LP: HTAB (2 *N0) +(2 *LV): PRINT "             ":EL = 3: POP : GOTO 6005
  111. 2180  IF EL = 5  THEN SX = 1
  112. 2190  IF EL = 5  AND LV = 1  THEN  FOR A = 7 TO 8 -J7  STEP  -1:P(A) = HI(A): NEXT 
  113. 2200  IF EL = 5  AND LV >1  THEN  FOR A = 8 -J7 TO 7:P(A) = K(A): NEXT :P(8 -J7) = HI(7 -I)
  114. 2210  IF EL = 5  THEN  VTAB 5 +(2 *LV) +LP: HTAB (2 *N0) +(2 *LV): PRINT "             ": POP : GOTO 6210
  115. 2220  VTAB 3: HTAB 38 -(N0 -1): PRINT HE:S = 0: VTAB 5: HTAB 36: PRINT "x "A(7 -I): VTAB 6 +S: HTAB 35: PRINT "----": RETURN 
  116. 2260  VTAB 14 +S: HTAB 38 -OO
  117. 2270  GET A$: IF (A$ <"0")  OR (A$ >"9")  THEN  VTAB 14 +S: HTAB 38 -OO: GOTO 2270
  118. 2280 A9 =  ASC(A$) - ASC("0"): IF A9 < >H8  THEN  VTAB 14 +S: HTAB 38 -OO: GOTO 2270
  119. 2300  VTAB 14 +S: HTAB 38 -OO: PRINT H8: IF Q >0  THEN H8 = Q:Q = 0:OO = OO +1: VTAB 14 +S: HTAB 38 -OO: GOSUB 2320: GOTO 2260
  120. 2310 OO = 0:S = S +4: VTAB 14 +S: HTAB 38: GOSUB 2320: RETURN 
  121. 2320  IF HJ = 1  AND EL = 3  THEN  RETURN 
  122. 2330  INVERSE : PRINT "^": INVERSE : RETURN 
  123. 2410  POKE 768,173: POKE 769,48: POKE 770,192: POKE 771,136: POKE 772,208: POKE 773,4: POKE 774,198: POKE 775,7: POKE 776,240: POKE 777,8: POKE 778,202: POKE 779,208: POKE 780,246: POKE 781,166: POKE 782,6: POKE 783,76: POKE 784,0: POKE 785,3: POKE 786,96: RETURN 
  124. 2460  IF S$ < >"Y"  THEN  RETURN 
  125. 2480  POKE 6,50: POKE 7,30: CALL 768: RETURN 
  126. 2490  IF S$ < >"Y"  THEN  RETURN 
  127. 2510  POKE 6,150: POKE 7,50: CALL 768: RETURN 
  128. 2520  CALL BOX,2,8,38,6: PRINT "Enter # of digits to divide.":NU = S0:AA = 1:BB = 7: GOSUB 3120: IF NU =  -1  THEN 3460
  129. 2560 S0 = NU: PRINT  CHR$(12): HOME : PRINT "Enter # of digits to divide by.":NU = N0:AA = 1:BB = 3: GOSUB 3120: IF NU =  -1  THEN 3460
  130. 2610 N0 = NU: PRINT  CHR$(12): HOME : PRINT "Enter # of retries per digit.":NU = R9:AA = 0:BB = 9: GOSUB 3120: IF NU =  -1  THEN 3460
  131. 2650 R9 = NU: PRINT  CHR$(12): HOME : PRINT "Enter # of problems per drill.":NU = M9:AA = 1:BB = 10: GOSUB 3120: IF NU =  -1  THEN 3460
  132. 2695 M9 = NU: GOTO 2710
  133. 2710  PRINT  CHR$(12);: HOME : PRINT "Do you want Audio Feedback (y/n)?";: GOSUB 3410: GET S$: IF S$ =  CHR$(27)  THEN 3460
  134. 2720  IF S$ >"Z"  THEN S$ =  CHR$( ASC(S$) -32)
  135. 2730  IF (S$ < >"Y")  AND (S$ < >"N")  THEN  GOSUB 3310: HTAB 1: GOTO 2710
  136. 2740  PRINT S$;
  137. 2750  CALL BOX,2,8,38,12: HOME : PRINT "Current information:": PRINT : PRINT "   Number to divide: "S0" digits": PRINT "Number to divide by: "N0" digits": PRINT "     No. retries/digit: "R9: PRINT "     No. problems/drill: "M9: PRINT "     Audio Feedback: ";: IF S$ = "y"  OR S$ = "Y"  THEN  PRINT "Yes": GOTO 2760
  138. 2754  PRINT "No"
  139. 2760  PRINT : PRINT "Is all information correct (y/n)?";: GOSUB 3410: GET A$: IF A$ =  CHR$(27)  THEN 3460
  140. 2790  IF A$ >"Z"  THEN A$ =  CHR$( ASC(A$) -32)
  141. 2800  IF A$ = "Y"  OR A$ = "N"  THEN  PRINT A$;
  142. 2810  IF A$ = "Y"  THEN  PRINT : RETURN 
  143. 2820  IF A$ < >"N"  THEN  GOSUB 3310: HTAB 1: GOTO 2750
  144. 2830  GOSUB 4430: GOSUB 2840: GOTO 2520
  145. 2840  CALL BOX,2,2,38,4: PRINT  CHR$(20);:A$ = "Division Drill": VTAB 3: GOSUB 3730:A$ = "Teacher Initialization": VTAB 4: GOSUB 3730: INVERSE : RETURN 
  146. 2930  GOSUB 4430: GOSUB 2840: GOSUB 2520: RETURN 
  147. 3120  PRINT "Range: from "AA" to "BB".  Select: ";:HT =  PEEK(36) +1:VT =  PEEK(37) +1: PRINT : PRINT : PRINT "Arrows change value, RETURN selects."
  148. 3180  VTAB VT: HTAB HT: PRINT " "NU"  ": FOR T = 0 TO 20: IF  PEEK(49152) <128  THEN  NEXT 
  149. 3200  NORMAL : VTAB VT: HTAB HT: PRINT " "NU" ";: INVERSE : PRINT " ": FOR T = 0 TO 20: IF  PEEK(49152) <128  THEN  NEXT : GOTO 3180
  150. 3220  GET K$: IF K$ < > CHR$(8)  AND K$ < > CHR$(21)  AND K$ < > CHR$(13)  AND K$ < > CHR$(11)  AND K$ < > CHR$(10)  THEN  GOSUB 3300
  151. 3240  IF K$ =  CHR$(8)  OR K$ =  CHR$(10)  THEN NU = NU -1: IF AA >NU  THEN NU = AA: GOSUB 3300
  152. 3250  IF K$ =  CHR$(21)  OR K$ =  CHR$(11)  THEN NU = NU +1: IF NU >BB  THEN NU = BB: GOSUB 3300
  153. 3255  IF K$ =  CHR$(27)  THEN NU =  -1: GOTO 3270
  154. 3260  IF K$ < > CHR$(13)  THEN 3180
  155. 3270  INVERSE : VTAB VT +2: HTAB 1: PRINT  SPC( 40): VTAB VT +1: RETURN 
  156. 3300  POKE 6,255: POKE 7,30: CALL 768: RETURN 
  157. 3310 VT =  PEEK(37) +1:HT =  PEEK(36): VTAB VT: HTAB HT: PRINT "No": POKE 6,255: POKE 7,30: CALL 768: VTAB VT: HTAB HT: PRINT "  ": VTAB VT: HTAB HT +1: RETURN 
  158. 3370 VT =  PEEK(37) +1:HT =  PEEK(36) +1: PRINT  CHR$(20);: VTAB VT: HTAB HT
  159. 3410  NORMAL : PRINT " " CHR$(8);: FOR T = 0 TO 20: IF  PEEK(49152) <128  THEN  NEXT 
  160. 3430  INVERSE : PRINT " " CHR$(8);: FOR T = 0 TO 20: IF  PEEK(49152) <128  THEN  NEXT : GOTO 3410
  161. 3450  RETURN 
  162. 3460  GOSUB 4430: CALL BOX,4,2,34,9: PRINT  CHR$(20);: INVERSE :A$ = "Division Drill": GOSUB 3730:A$ = "by Hugh Eltgroth": GOSUB 3730:A$ = "(c)1989 Softdisk Inc.": GOSUB 3730
  163. 3461 A$ = "All rights reserved.": GOSUB 3730:A$ = "Published on Softdisk 93": GOSUB 3730
  164. 3465 A$ = "Subscriptions: 1-800-831-2694": GOSUB 3730:A$ = "Changing this notice is illegal.": GOSUB 3730
  165. 3470 A$(1) = " Divide ":A$(2) = "Adjust Parameters ":A$(3) = " Back to Softdisk Menu"
  166. 3475  CALL BOX,7,13,28,5: PRINT  CHR$(20);: VTAB 12: PRINT : PRINT : FOR I = 1 TO 3:A$ = A$(I): GOSUB 3730: NEXT : CALL BOX,2,20,38,4: PRINT  CHR$(20);
  167. 3480  VTAB 21:A$ = "Arrows move highlight,": GOSUB 3730:A$ = "RETURN selects.": GOSUB 3730:NU = 1
  168. 3620  VTAB 13 +NU: NORMAL :A$ = A$(NU): GOSUB 3730: INVERSE : FOR T = 1 TO 200: NEXT : VTAB 13 +NU: GOSUB 3730: FOR T = 1 TO 200: NEXT : IF  PEEK( -16384) <128  THEN 3620
  169. 3635  GET K$: IF K$ =  CHR$(8)  OR K$ =  CHR$(11)  THEN NU = NU -1: IF NU = 0  THEN NU = 3
  170. 3650  IF K$ =  CHR$(21)  OR K$ =  CHR$(10)  THEN NU = NU +1: IF NU = 4  THEN NU = 1
  171. 3655  IF K$ =  CHR$(27)  THEN NU = 3
  172. 3660  IF K$ < > CHR$(13)  THEN 3620
  173. 3670  GOSUB 3840: ON NU GOSUB 1390,2930,3700: GOSUB 3840: GOTO 3460
  174. 3700 Q8 =  PEEK(184):Q9 =  PEEK(185): CALL Q8 +(Q9 -(Q8 >244)) *256 +39: REM ::8 <CTRL-0x1f><UNKNOWN TOKEN> GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF _ TAB(  IF ) TAB( ) SIN PLOT ) TAB( `:
  175. 3710  PRINT  CHR$(4)"bye"
  176. 3730  HTAB 21 - INT( LEN(A$)/2): PRINT A$: RETURN 
  177. 3760 VX =  PEEK(37) +1:HX =  PEEK(36) +1: CALL OBOX,8,22,24,3: PRINT "Exit to Menu (y/n)? ";: GOSUB 3410
  178. 3790  VTAB 23: HTAB 20: GET K$: IF K$ >"Z"  THEN K$ =  CHR$( ASC(K$) -32)
  179. 3800  IF K$ < >"N"  AND K$ < >"Y"  THEN  GOSUB 3310: GOTO 3790
  180. 3810  IF K$ = "Y"  THEN  GOTO 150
  181. 3820  CALL CBOX
  182. 3830  VTAB VX: HTAB HX:VT = VX:HT = HX: RETURN 
  183. 3840  POKE 49168,0: CALL BOX,1,1,40,24: RETURN 
  184. 4140  REM  onerr
  185. 4150  POKE 216,0: INVERSE : ONERR  GOTO 4140
  186. 4180  GOSUB 4430: VTAB 8:A$ = "There was an error. " + STR$( PEEK(222)) +" " + STR$( PEEK(218) + PEEK(219) *256): GOSUB 3730:A$ = "-------------------": GOSUB 3730: PRINT :A$ = "Program Restarting.": GOSUB 3730
  187. 4181  PRINT : PRINT :A$ = "(You shouldn't do things like that.)": GOSUB 3730: FOR Z = 0 TO 500: IF  PEEK(49152) <128  THEN  NEXT 
  188. 4260  GOSUB 3840: GOTO 150
  189. 4430  CALL BOX,1,1,40,24: POKE 49234,0: RETURN 
  190. 5998  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -((A +1) *2): RETURN 
  191. 5999  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(A *2): RETURN 
  192. 6000 LV = LV +1
  193. 6005  IF HJ = 0  THEN  GOSUB 8000
  194. 6010 R = 0:OO = 0: FOR A = 0 TO N0 -1:H8 = A(7 -I) *HE(A):Q =  INT(H8/10):H8 = H8 -Q *10:B(I) = H8:D(A) = H8 +R:R = Q: IF HJ = 0  THEN  GOSUB 2220: VTAB 8: HTAB 38 -A:EL = 1:R0 = 0: GOSUB 770
  195. 6030  IF Q = 0  OR HJ = 1  THEN 6070
  196. 6040  IF HJ = 0  AND A = N0 -1  THEN  VTAB 8: HTAB 37 -A:B(I) = Q:EL = 2:R0 = 0: GOSUB 770: GOTO 6070
  197. 6050  IF HJ = 0  THEN  VTAB 7: HTAB 37 -A:B(I) = Q:EL = 2:R0 = 0: NORMAL : GOSUB 770: INVERSE : GOTO 6070
  198. 6060 EL = 2: GOSUB 770
  199. 6070  NEXT A:Q = 0:EL = 3: IF HJ = 0  THEN  VTAB 9: HTAB 31: PRINT "--------"
  200. 6080  IF R < >0  THEN OO = 1:D(N0) = R
  201. 6090  IF HJ = 0  THEN  VTAB 3: HTAB 32: PRINT "       ": HTAB 34: PRINT "CARRY": HTAB 32: PRINT "       ": VTAB 8: HTAB 31: PRINT "+"
  202. 6100 HJ$ = "": FOR A = 0 TO N0 -1 +OO:H8 = D(A) +Q:Q =  INT(H8/10):H8 = H8 -Q *10:B(I) = H8:M(A) = H8:HJ$ =  STR$(H8) +HJ$:LP = 0: IF LV >1  THEN LP = LV -1
  203. 6120  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(A *2): GOSUB 2320: IF HJ = 1  THEN R0 = 0: GOSUB 770
  204. 6130  IF HJ = 0  THEN  VTAB 10: HTAB 38 -A:R0 = 0: GOSUB 770: IF Q < >0  AND A = N0 -1 +OO  THEN  GOSUB 5998: GOSUB 2320: VTAB 10: HTAB 37 -A:EL = 4:B(I) = Q: GOSUB 770:EL = 3
  205. 6140  IF HJ = 0  AND Q < >0  AND A < >N0 -1 +OO  THEN  VTAB 5: HTAB 37 -A:EL = 4:B(I) = Q: NORMAL : GOSUB 770: INVERSE :EL = 3
  206. 6150  NEXT A: IF Q = 0  THEN 6180
  207. 6160 B(I) = Q:HJ$ =  STR$(Q) +HJ$:M(A) = Q: IF HJ = 0  THEN  GOSUB 5999: PRINT A9
  208. 6170  IF HJ = 1  THEN  VTAB 3 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(A *2): GOSUB 770
  209. 6180  IF HJ = 0  THEN  GOSUB 6570
  210. 6185  IF LV = 1  THEN J9 = J7:EC$ = HJ$:R = 7
  211. 6190  IF QJ >0  THEN R = 7 -QJ:P(R) = HI(8 -QJ -I):J4 = QJ:J9 =  LEN(EC$ +" "):J7 = QJ +1:QJ = 0: GOTO 6210
  212. 6200 Q = 0: IF LV >1  THEN Z =  LEN(EC$) -J4: FOR R = 7 TO 8 -J7  STEP  -1:P(R) = N(R -Z):K(R) = P(R): NEXT : FOR T = R TO R -Z +1  STEP  -1:P(T +1) = HI(7 -T +R -I):K(T +1) = P(T +1): NEXT :J9 =  LEN(HJ$):R = T +1
  213. 6210  IF HJ = 1  THEN 6230
  214. 6215  GOSUB 8000: VTAB 4: HTAB 38 -(2 *J7): FOR A = 7 TO 8 -J7  STEP  -1: PRINT " "P(A);: NEXT : PRINT 
  215. 6230  IF SX = 1  THEN SX = 0: GOTO 6270
  216. 6240  IF LV = 3  THEN  VTAB 23: CALL  -868
  217. 6250  IF LV >2  THEN SV = 2 -LV
  218. 6260  IF LK = 1  THEN J9 =  LEN(HJ$):LK = 0
  219. 6270  IF J9 -1 <J7  THEN M(J9) = 0
  220. 6280  IF HJ = 1  THEN 6320
  221. 6290  VTAB 6: HTAB 37 -(2 *J9): PRINT "-";: FOR A = J9 -1 TO 0  STEP  -1: PRINT " "M(A);: NEXT : PRINT : VTAB 7: HTAB 29: PRINT "----------"
  222. 6320  VTAB 4 +(2 *LV) +LP: HTAB (2 *N0) +(2 *LV): PRINT "-------------":B =  -1:EC$ = "": FOR A = 8 -J7 TO 7:C = 0:B = B +1: IF M(B) >P(A)  THEN P(A) = P(A) +10: GOSUB 6580: IF HJ = 0  THEN  VTAB 3: HTAB 35 -(B *2): CALL  -868: PRINT "("P(A)")"
  223. 6350  VTAB 5 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(B *2): IF HJ = 0  THEN  GOSUB 2320
  224. 6360 H8 = P(A) -M(B):B(I) = H8:N(A) = H8:EC$ =  STR$(H8) +EC$:EL = 5: IF HJ = 0  THEN  VTAB 8: HTAB 37 -(2 *B)
  225. 6380 R0 = 0: GOSUB 770: IF HJ = 1  THEN 6400
  226. 6390  VTAB 5 +(2 *LV) +LP: HTAB 4 +(2 *N0) +(2 *I) -(B *2): PRINT A9
  227. 6400  NEXT A: FOR Q8 = 0 TO 10:D(Q8) = 0:M(Q8) = 0: NEXT :A$ = "Y": IF HJ = 0  THEN  GOSUB 6570
  228. 6402  IF N0 = 4  THEN  VTAB 6: HTAB 27: PRINT " "
  229. 6405 A$ = "": IF I = 7  OR SV =  -4  THEN I = 7: GOSUB 8100: PRINT "   The": PRINT "remainder": PRINT "  is ";: GOSUB 6450: PRINT EP$: PRINT  CHR$(20);:SV = 0: RETURN 
  230. 6410  GOSUB 6450: IF EP = 0  AND (I >S0 -1  OR I = S0 -1)  THEN I = 7: GOSUB 8100: PRINT "   No": PRINT "remainder": PRINT " is left": PRINT  CHR$(20);: RETURN 
  231. 6420 ZC = HI(6 -I)
  232. 6430  VTAB 5 +(2 *LV) +LP: HTAB 6 +(2 *N0) +(2 *I): PRINT ZC: IF UU = 1  THEN UU = 0: RETURN 
  233. 6450 EP =  VAL(EC$):EP$ =  STR$(EP):J7 =  LEN(EP$) +1:J4 = J7 -1: IF EP = 0  THEN J7 = 1:J4 = 0
  234. 6455  IF EP > = HE  THEN  STOP 
  235. 6460  RETURN 
  236. 6470  CALL OBOX,2,13,8,6: HOME : PRINT "USE": PRINT "'T'": PRINT "TO": PRINT "TEST": RETURN 
  237. 6510 PZ$ = "": FOR PZ = 1 TO (5 - LEN(HE$)):PZ$ = PZ$ +" ": NEXT :PZ$ = PZ$ +HE$: GOSUB 6570: CALL OBOX,2,13,8,6: PRINT PZ$: PRINT "   x": PRINT "-----": PRINT "     "
  238. 6540  VTAB 14: HTAB 5: GET X$: IF (X$ <"0")  OR (X$ >"9")  THEN  PRINT : GOTO 6540
  239. 6555  VTAB 15: HTAB 5: PRINT X$:X$ =  STR$(HE * VAL(X$)): VTAB 17: HTAB 6 - LEN(X$): PRINT X$: GOTO 650
  240. 6570  CALL CBOX: RETURN 
  241. 6580 C = C +1:P(A +C) = P(A +C) -1: IF P(A +C) =  -1  THEN P(A +C) = 9: GOSUB 6600: GOTO 6580
  242. 6600  IF HJ = 0  THEN  VTAB 4: HTAB 37 -((B +C) *2): NORMAL : PRINT P(A +C): INVERSE 
  243. 6610  RETURN 
  244. 7000 X =  PEEK(222):Y =  PEEK(218) + PEEK(219) *256: PRINT "ERROR "X" IN LINE "Y
  245. 8000  CALL OBOX,28,2,12,10: PRINT  CHR$(20);: RETURN 
  246. 8100  CALL BOX,28,2,12,10: RETURN 
  247. 8500 VX =  PEEK(37):HX =  PEEK(36): RETURN 
  248. 9000 Q8 =  PEEK(184):Q9 =  PEEK(185): CALL Q8 +(Q9 -(Q8 >244)) *256 +39: REM ::8 <CTRL-0x1f>  GOSUB <CTRL-0x02> HGR2 <CTRL-0x01>` IF _ TAB(  IF ) TAB( ) SIN  PLOT ) TAB( `: